RAIS  3.2
C:/Projekte/RAIS/Specific Masks/RADEVReport.aspx.cs
Go to the documentation of this file.
00001 using System;
00002 using System.Collections;
00003 using System.Configuration;
00004 using System.Data;
00005 using System.IO;
00006 using System.Linq;
00007 using System.Web;
00008 using System.Web.Security;
00009 using System.Web.UI;
00010 using System.Web.UI.HtmlControls;
00011 using System.Web.UI.WebControls;
00012 using System.Web.UI.WebControls.WebParts;
00013 using System.Xml.Linq;
00014 using Microsoft.Reporting.WebForms;
00015 
00016 using RAIS.ApplicationLogicLayer;
00017 using RAIS.Common;
00018 using RAIS.Common.UserManagement;
00019 
00020 namespace RAIS.UI.SpecificMasks
00021 {
00025     public partial class RADEVReport : System.Web.UI.Page
00026     {
00027         protected void Page_PreLoad(object sender, EventArgs e)
00028         {
00029             RAIS.UI.Common.PageManagement.TrimTextBoxValues(this);
00030         }
00034                 protected UserData CurrentUser
00035                 {
00036                         get { return (UserData)this.Session[UI.Common.Constants.CURRENT_USER_TAG]; }
00037                 }
00038                 
00039                 protected void Page_Load(object sender, EventArgs e)
00040         {
00041                         string subreportName;
00042 
00043 
00044             if (Session["RADEV_CRITERIAS"] == null)
00045                 return;
00046             RADEVCriterias criterias =(RADEVCriterias )Session["RADEV_CRITERIAS"];
00047             report.LocalReport.DisplayName = (string)Session["ReportName"];
00048             switch (criterias.Type)
00049             {
00050                 case ReportType.OneLine:
00051                     //report.LocalReport.ReportPath = "Reports\\Template - RADEV One Line.rdlc";
00052                                         report.LocalReport.LoadReportDefinition(
00053                                                 GetTranslatedReportDefinition("Template - RADEV One Line"));
00054                                         break;
00055                 case ReportType.Complete:
00056                     //report.LocalReport.ReportPath = "Reports\\Template - RADEV Detailed.rdlc";
00057                                         report.LocalReport.LoadReportDefinition(
00058                                                 GetTranslatedReportDefinition("Template - RADEV Detailed"));
00059 
00060                                         subreportName = "Template - RADEV Summary Sub";
00061                                         report.LocalReport.LoadSubreportDefinition(subreportName
00062                                                 , GetTranslatedReportDefinition(subreportName));
00063 
00064                                         subreportName = "Template - RADEV RadiationGenerator";
00065                                         report.LocalReport.LoadSubreportDefinition(subreportName
00066                                                 , GetTranslatedReportDefinition(subreportName));
00067 
00068                                         subreportName = "Template - RADEV RadiationDevice";
00069                                         report.LocalReport.LoadSubreportDefinition(subreportName
00070                                                 , GetTranslatedReportDefinition(subreportName));
00071 
00072                                         subreportName = "Template - RADEV RadiationSource";
00073                                         report.LocalReport.LoadSubreportDefinition(subreportName
00074                                                 , GetTranslatedReportDefinition(subreportName));
00075 
00076                                         subreportName = "Template - RADEV EventWorkerPublicCauses";
00077                                         report.LocalReport.LoadSubreportDefinition(subreportName
00078                                                 , GetTranslatedReportDefinition(subreportName));
00079 
00080                                         subreportName = "Template - RADEV EventWorkerPublicType";
00081                                         report.LocalReport.LoadSubreportDefinition(subreportName
00082                                                 , GetTranslatedReportDefinition(subreportName));
00083                                         break;
00084                 case ReportType.Summary:
00085                     //report.LocalReport.ReportPath = "Reports\\Template - RADEV Summary.rdlc";
00086                                         report.LocalReport.LoadReportDefinition(
00087                                                 GetTranslatedReportDefinition("Template - RADEV Summary"));
00088                                         
00089                                         subreportName = "Template - RADEV Summary Sub";
00090                                         report.LocalReport.LoadSubreportDefinition(subreportName
00091                                                 , GetTranslatedReportDefinition(subreportName));
00092                                         break;
00093 
00094             }
00095             report.LocalReport.EnableExternalImages = true;
00096             report.LocalReport.DataSources.Add(ReportManagement.GetRADEVDataSource(ConfigurationManager.AppSettings["RADEVProvider"].ToLower(), "EventMaster", criterias));
00097             report.LocalReport.SubreportProcessing += LocalReport_SubreportProcessing;
00098         }
00099 
00100         void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e)
00101         {
00102             RADEVCriterias criterias = new RADEVCriterias();
00103             criterias.IAEAEventID = e.Parameters[0].Values[0];
00104             string provider = ConfigurationManager.AppSettings["RADEVProvider"].ToLower();
00105             switch (e.ReportPath)
00106             {
00107                 case "Template - RADEV Summary Sub":
00108                     e.DataSources.Add(ReportManagement.GetRADEVDataSource(provider, "EventWorkPublicDosimetry", criterias));
00109                     break;
00110                 case "Template - RADEV RadiationGenerator":
00111                     e.DataSources.Add(ReportManagement.GetRADEVDataSource(provider, "RadiationGenerator", criterias));
00112                     break;
00113                 case "Template - RADEV RadiationDevice":
00114                     e.DataSources.Add(ReportManagement.GetRADEVDataSource(provider, "RadiationDevice", criterias));
00115                     break;
00116                 case "Template - RADEV RadiationSource":
00117                     e.DataSources.Add(ReportManagement.GetRADEVDataSource(provider, "RadiationSource", criterias));
00118                     break;
00119                 case "Template - RADEV EventWorkerPublicType":
00120                     e.DataSources.Add(ReportManagement.GetRADEVDataSource(provider, "EventWorkerPublicType", criterias));
00121                     break;
00122                 case "Template - RADEV EventWorkerPublicCauses":
00123                     e.DataSources.Add(ReportManagement.GetRADEVDataSource(provider, "EventWorkerPublicCauses", criterias));
00124                     break;
00125             }
00126         }
00127 
00128                 MemoryStream GetTranslatedReportDefinition(string reportName)
00129                 {
00130             string virtualDirectori = Server.HtmlEncode(Request.ApplicationPath) == "/" ? "" : Server.HtmlEncode(Request.ApplicationPath);
00131             
00132                         return ReportManagement.GetTranslatedReportDefinition(this.CurrentUser
00133                                 , string.Format("{0}/Reports/{1}.rdlc"
00134                                         , Server.MapPath(string.Empty)
00135                                         , reportName)
00136                     , HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Host + virtualDirectori + "/"
00137                     , (string)Session["CultureName"]
00138                     , (bool)Session["IsRightToLeft"]);
00139                 }
00140     }
00141 }